using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WW.NActiveRecord.Attriutes;


namespace WW.NActiveRecord.Tests.Models
{
    [Table(Name="Employees")]
    public class Employee : Base<Employee> {

        private readonly MemberField<int> employeeID =new MemberField<int>();

        private readonly MemberField<string> lastName = new MemberField<string>();

        private readonly MemberField<string> firstName = new MemberField<string>();

        private readonly MemberField<string> title = new MemberField<string>();

        private readonly MemberField<DateTime> birthDate = new MemberField<DateTime>();

        private readonly MemberField<byte[]> photo = new MemberField<byte[]>();

        public Employee() {
        }

        public Employee(string firstName, string lastName):base()
        {
            this.firstName.Value = firstName;
            this.lastName.Value = lastName;
        }

        public int EmployeeID {
            get {
                return this.employeeID;
            }
            set {
                this.employeeID.Value = value;
            }
        }

        public string LastName {
            get {
                return this.lastName;
            }
            set {
                this.lastName.Value = value;
            }
        }

        public string FirstName {
            get {
                return this.firstName;
            }
            set {
                this.firstName.Value = value;
            }
        }

        public string Title {
            get {
                return this.title;
            }
            set {
                this.title.Value = value;
            }
        }

        public System.DateTime BirthDate {
            get {
                return this.birthDate;
            }
            set {
                this.birthDate.Value = value;
            }
        }

        public byte[] Photo {
            get {
                return this.photo;
            }
            set {
                this.photo.Value = value;
            }
        }


        
    }
}